package com.zx.flow.core.engine;

import com.zx.flow.api.execute.request.FlowParam;
import com.zx.flow.api.execute.response.FlowResult;
import com.zx.flow.db.FlowStorageHandler;

/**
 * 流程引擎
 *
 * @author zhangxue
 */
public interface FlowEngine {

    /**
     * 初始化流程引擎
     */
    void init() throws Exception;

    /**
     * 执行流程
     *
     * @param param
     * @return
     */
    FlowResult execute(FlowParam param);

    /**
     * 获得存储处理器
     *
     * @return
     */
    FlowStorageHandler getStorageHandler();

}
